import { IContext, IParam } from '@/core/interface';
import {
	IAppCodeListHelper,
	ICodeList,
	ICodeListResult,
} from '@/core/interface/modules/code-list';

export abstract class AppCodeListHelperBase implements IAppCodeListHelper {
	/**
	 * 获取代码表数据（包含动态/静态/预定义统一入口）
	 * @param tag 代码表标识
	 * @param context 应用上下文
	 * @param viewParams 视图参数
	 */
	public getCodeListItems(
		tag: string,
		context?: IContext,
		viewParams?: IParam
	): Promise<ICodeListResult> {
		throw new Error('Method not implemented.');
	}

	/**
	 * 获取静态代码表数据
	 * @param codeList 代码表
	 * @param context 应用上下文
	 * @param viewParams 视图参数
	 */
	protected getItemsWithStatic(
		codeList: ICodeList,
		context?: IContext,
		viewParams?: IParam
	): Promise<ICodeListResult> {
		throw new Error('Method not implemented.');
	}

	/**
	 * 获取动态代码表数据
	 * @param codeList 代码表
	 * @param context 应用上下文
	 * @param viewParams 视图参数
	 */
	protected getItemsWithDynamic(
		codeList: ICodeList,
		context?: IContext,
		viewParams?: IParam
	): Promise<ICodeListResult> {
		throw new Error('Method not implemented.');
	}

	/**
	 * 获取预定义代码表数据
	 * @param codeList 代码表
	 * @param context 应用上下文
	 * @param viewParams 视图参数
	 */
	protected getItemsWithPredefined(
		codeList: ICodeList,
		context?: IContext,
		viewParams?: IParam
	): Promise<ICodeListResult> {
		throw new Error('Method not implemented.');
	}
}
